package wiki.hitime.stl.daq.service.factory;

import wiki.hitime.stl.daq.bean.bo.MsgRuleConfigFieldBO;
import wiki.hitime.stl.daq.enums.MsgTypeEnum;

import java.util.List;
import java.util.Map;

/**
 * @author zhangdaoping
 * @create 2019-07-17 17:07
 */
public interface DataMsgFactory {

    /**
     * 获取支持的消息渠道类型
     *
     * @return 消息渠道类型枚举
     */
    MsgTypeEnum getSupportMsgType();

    /**
     * 获取必须的基础配置键
     *
     * @return
     */
    List<MsgRuleConfigFieldBO> listRequiredBaseConfigInfo();

    /**
     * 获取必须的规则详细配置键
     *
     * @return
     */
    List<MsgRuleConfigFieldBO> listRequiredRuleDetailConfigInfo();

    /**
     * 通知消息
     * 实现类增加取值前建议维护 listRequiredBaseConfigInfo 和 listRequiredRuleDetailConfigInfo
     *
     * @param receiverStr   接收人以","隔开
     * @param msgContent    消息内容
     * @param baseConfigMap 基础配置信息
     * @param ruleConfigMap 规则对应配置信息
     * @return
     */
    Boolean notifyMsg(String receiverStr, String msgContent, Map<String, String> baseConfigMap, Map<String, String> ruleConfigMap);
}
